Programming Languages for Scalable Software Extension and Composition

نویسندگان

  • Matthew Fluet
  • Vicky Weissman
  • Riccardo Pucella
  • Jed Liu
  • Lantian Zheng
  • Ranveer Chandra
چکیده

class Exp { Type type; abstract Exp accept(Visitor v); } class Abs extends Exp { String x; Exp e; // λx.e Exp accept(Visitor v) { e = e.accept(v); return v.visitAbs(this); } } class Visitor { Exp visitAbs(Abs a) { return a; } } class TypeChecker extends Visitor { Exp visitAbs(Abs a) { ... } } class Emitter extends Visitor { Exp visitAbs(Abs a) { print(...); return a; } } class Compiler { void main() { ... } Exp parse() { ... } } Figure 3.2: Lambda calculus compiler

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Well-formed and scalable invasive software composition

Software components provide essential means to structure and organize software effectively. However, frequently, required component abstractions are not available in a programming language or system, or are not adequately combinable with each other. Invasive software composition (ISC) is a general approach to software composition that unifies component-like abstractions such as templates, aspec...

متن کامل

Nested Intersection for Scalable Software Composition

This paper introduces a programming language that makes it convenient to compose large software systems, combining their features in a modular way. J& supports nested intersection, building on earlier work on nested inheritance in the language Jx. Nested inheritance permits modular, type-safe extension of a package (including nested packages and classes), while preserving existing type relation...

متن کامل

On the Feasibility of Feature based composition for programming in the large

Feature-based composition complements object-oriented composition by enabling the coherent extension of multiple entities (objects, classes). This paradigm enables an integral feature to be the subject of composition rather than fragments of features. The conventional object model of state-of-the-art OO programming languages does not incorporate the notion of features. Therefore, in the traditi...

متن کامل

Extending Java to Support Component-Based Programming

Java Layers extends the Java programming language by implementing a software component model based on layer composition. Each layer implements a single design feature and may contain code that crosscuts multiple classes. Layer composition enables large software applications to be constructed in a more modular way, and with a higher level of semantic checking, than is typically achieved using cu...

متن کامل

Type-Safe Prototype-Based Component Evolution

Component-based programming is currently carried out using mainstream object-oriented languages. These languages have to be used in a highly disciplined way to guarantee flexible component composition and extensibility. This paper investigates abstractions for component-oriented programming on the programming language level. We propose a simple prototype-based model for first-class components o...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2006